package com.adisi.objetos;

import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;


public class Chofer {
	
	private int id = 0;
	private String nombre = "";
	private String apellido = "";
	private Documento documento = null;
	private boolean tieneGps = false;
	private String imei = null;
	private String telefono = "";
	private String correo = "";

	private Documento licencia = null; 
	
	private ArrayList<Alerta> alertas = null;
	
	private boolean alertaCercana = false;
	private boolean alertaGrave = false;
	
	private int indexAlertaCercana = -1;
	
	
	/**
	 * 
	 */
	public Chofer() {
		super();
	}
		
	/**
	 * @param idChofer
	 * @param nombreChofer
	 * @param apellidoChofer
	 */
	public Chofer(int id, String nombre, String apellido) {
		super();
		this.id = id;
		this.nombre = nombre;
		this.apellido = apellido;
	}

	public Chofer(int id, String nombre, String apellido, Documento documento, String correo, String telefono, boolean tieneGps, Documento licencia, String imei) {
		super();
		this.id = id;
		this.nombre = nombre;
		this.apellido = apellido;
		this.correo = correo;
		this.telefono = telefono;
		this.documento = documento;
		this.tieneGps = tieneGps;
		this.licencia = licencia;
		this.imei = imei;
	}

	public int getIdChofer() {
		return id;
	}
	
	public void setId(int idChofer) {
		this.id = idChofer;
	}
	
	public String getNombre() {
		return nombre;
	}
	
	public void setNombre(String nombreChofer) {
		this.nombre = nombreChofer;
	}
	
	public String getApellido() {
		return apellido;
	}
	
	public void setApellido(String apellidoChofer) {
		this.apellido = apellidoChofer;
	}

	public Documento getDocumento() {
		return documento;
	}

	public void setDocumento(Documento documento) {
		this.documento = documento;
	}	
	
	public Documento getLicencia() {
		return licencia;
	}

	public void setLicencia(Documento licencia) {
		this.licencia = licencia;
	}	
	
	public String getTelefono() {
		return telefono;
	}

	public void setTelefono(String telefono) {
		this.telefono = telefono;
	}
	
	public String getCorreo() {
		return correo;
	}

	public void setCorreo(String correo) {
		this.correo = correo;
	}	
	
	public void setTieneGPS(boolean tieneGPS)
	{
		this.tieneGps = tieneGPS;
	}
	
	public boolean tieneGPS()
	{
		return tieneGps;
	}
	
	public String getNombreCompleto()
	{
		return nombre.trim() + " " +  apellido.trim();
	}

	public ArrayList<Alerta> getAlertas() {
		return alertas;
	}

	public void setAlertas(ArrayList<Alerta> alertas) {
		this.alertas = alertas;
		
		Date hoy = new Date();
		int md = Integer.MAX_VALUE;
		BigDecimal mk = new BigDecimal(Integer.MAX_VALUE);
		
		indexAlertaCercana = -1;
		
		for(int index = 0; index < alertas.size(); index++) {
			Alerta alerta = alertas.get(index);

			long dif = alerta.getFechaAlerta().getTime() - hoy.getTime();
			int dias =  (int)(dif / 1000 / 60 / 60 / 24);
			if(dias <=15)
				indexAlertaCercana = index;
			if(dias <=5) 
				alertaGrave = true;
			if (dias < md) {
				md = dias;
			}
			
		}}


	public Alerta getAlertaCercana() {
		if(indexAlertaCercana>=0)
			return alertas.get(indexAlertaCercana);
		else
			return null;
	}


	public boolean isAlertaGrave() {
		return alertaGrave;
	}

	public String getImei() {
		return imei;
	}

	public void setImei(String imei) {
		this.imei = imei;
	}

	
	
}
